MOM vs. RPC: Communication Models for Distributed Applications

نویسنده

  • Daniel A. Menascé
چکیده

A n important aspect of designing a distributed application is the communication model you use to connect its various components. Some middleware solutions, 1 such as Web services, 2 offer two of the most important communication paradigms: asynchronous messaging and remote procedure call (RPC). Message-oriented middleware (MOM) lets a ser-vice's consumers physically and temporally decou-ple from the service providers (see www. webmethods.com and http://www-306.ibm.com/ software/integration/wmq/). Communication between service providers and their consumers is asynchronous, and they don't need to be available at the same time because they communicate by sending and receiving messages from designated message queues. In contrast, RPC is a synchronous method of requesting remote service execution. Consumers must suspend service execution until they receive a reply from the provider. MOM and RPC have advantages and disadvantages. MOM solutions tend to be more robust to failures than RPC, and they allow service re-questers to continue to process while service providers work on their requests. However, programming MOM-based applications is more cumbersome because distribution isn't as transparent to the programmer as with RPCs. In this column, I provide a quantitative framework you can use to compare MOM-and RPC-based solutions. Consider an application program component (APC) that requests a service from a service provider (SP). We assume that the APC could potentially execute some asynchronous code after sending a request for service but before receiving a reply from the SP; we call this time to execute the asynchronous code t async. With RPCs, the APC must wait until the RPC returns a result before it can execute the asynchronous code. With MOM, the APC and the SP exchange messages through a message queue broker (MQB), as Figure 1 shows. After sending a service request to the SP, the APC can execute its asynchronous code. The SP is constantly retrieving messages addressed to it from the MQB that contain requests for service execution. After completing this execution , the SP posts a message to the MQB addressed to the requesting APC, which retrieves the reply. Let's look at how to compute a request's execution time, from the APC's viewpoint, for RPC-and MOM-based communication with an SP (see Figure 2). We give an RPC-based request's execution time, T RPC , as T RPC = t N + t s + t N + t async = 2 ´ t N + t s + t async , (1) where t N is …

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Message-Oriented Middleware

As software systems continue to be distributed deployments over ever-increasing scales, transcending geographical, organizational, and traditional commercial boundaries, the demands placed upon their communication infrastructures will increase exponentially. Modern systems operate in complex environments with multiple programming languages, hardware platforms, operating systems and the requirem...

متن کامل

Specializing Object-Oriented RPC for Functionality and Performance

Remote procedure call (RPC) integrates distributed processing with conventional programming languages. However, traditional RPC lacks support for forms of communication such as datagrams, multicast, and streams that fall outside the strict request-response model. Emerging applications such as Distributed Interactive Simulation (DIS) and Internet video require scalable, reliable, and efficient c...

متن کامل

NoWait-RPC: Extending ONC RPC to a Fully Compatible Message Passing System

Locally and functionally distributed applications realized on different system architectures demand a universal, portable and intuitive software utility for interprocess communication. Remote Procedure Calling (RPC) fulfills these requirements but suffers unnecessarily strict synchronization and the danger of deadlocks with complex client/server relations. Using message passing to avoid the inh...

متن کامل

Modules, Objects and Distributed Programming: Issues in RPC and Remote Object Invocation

Distributed programming can be greatly simplified by language support for distributed communication, such as that provided by remote procedure call (RPC) or remote object invocation. This paper examines design and implementation issues in these systems, and focuses on the influence of the communication system on a distributed program. To make the discussion concrete, we introduce a single appli...

متن کامل

Performance Evaluation and Comparison of Distributed Messaging Using Message Oriented Middleware

Message Oriented Middleware (MOM) is an enabling technology for modern event-driven applications that are typically based on publish/subscribe communication (Eugster, 2003). Enterprises typically contain hundreds of applications operating in environments with diverse databases and operating systems. Integration of these applications is required to coordinate the business process. Unfortunately,...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • IEEE Internet Computing

دوره 9  شماره 

صفحات  -

تاریخ انتشار 2005